package com.swak.algs;

/**
 * 一个数的相反数： 取反 +1, 注意一个数的相反数和他在位模式上的关系
 * 
 * @author lifeng
 */
public class Code18 {

	/*
	 * 0000 0001
	 * 1111 1110
	 * 1111 1111
	 * 
	 * 0000 0010
	 * 1111 1101
	 * 1111 1110
	 * 
	 * 0010 0010
	 * 1101 1101
	 * 1101 1110
	 * 
	 * 关系： 原数字的最后一位 1 和 相反数的最后一位1 的位置相同，后续都是0，之前是相反的。
	 * 也就是说：最后一位 1 和之后的 位模式是相同的，
	 */
	public static void main(String[] args) {
		int i = 10;
		System.out.println(-i);
		System.out.println(~i + 1);
		System.out.println((~i + 1) & i);
	}
}